<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/iconfont.css">
    <link rel="stylesheet" href="css/main.css">
    <!-- jq -->
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <!-- 模板引擎 -->
    <script src="./libs/template-web.js"></script>
    <!-- jsDate日期插件 -->
    <link type="text/css" rel="stylesheet" href="./libs/jedate/css/jeDate-test.css">
    <link rel="stylesheet" href="./libs/jedate/css/jedate.css">
    <script src="./libs/jedate/js/jedate.js"></script>
    <!-- tinymce富文本编辑器插件 -->
    <script src="./libs/tinymce/tinymce.min.js"></script>
    <!-- jsDate + tinumce配置文件 -->
    <script src="./libs/config.js"></script>
</head>

<body>
    <div class="container-fluid">
        <div class="common_title">
            文章编辑
        </div>
        <div class="container-fluid common_con">
            <form class="form-horizontal article_form" id="form">
                <div class="form-group">
                    <label for="inputTitle" class="col-sm-2 control-label">文章标题：</label>
                    <div class="col-sm-10">
                        <input type="text" name="title" class="form-control title" id="inputTitle" value="文章标题文字">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCover" class="col-sm-2 control-label">文章封面：</label>
                    <div class="col-sm-10">
                        <img src="images/pic06.jpg" class="article_cover">
                        <input name="cover" type="file" id="inputCover">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCategory" class="col-sm-2 control-label">文章类别：</label>
                    <div class="col-sm-4">
                        <select class="form-control category" name="categoryId">
                            <option>类别一</option>
                            <option>类别二</option>
                            <option>类别三</option>
                            <option selected>类别四</option>
                            <option>类别五</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">发布时间：</label>
                    <div class="col-sm-4">
                        <div class="jeitem">
                            <div class="jeinpbox">
                                <input type="text" name="date" class="jeinput" id="testico" placeholder="YYYY-MM-DD">
                                <div class="icons jebtns"
                                    onclick="jeDate('#testico',{trigger:false,format: 'YYYY-MM-DD',theme: { bgcolor: '#00A680', pnColor: '#00DDAA' }})">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">文章内容：</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="mytextarea" placeholder="文章内容" value="文章内容">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-success btn-edit">修改</button>
                        <button type="submit" class="btn btn-default btn-draft">存为草稿</button>
                    </div>
                </div>
            </form>
        </div>
    </div>

    <!-- 准备一个 文章分类 模板 -->
    <script id="cat_list" type="text/html">
        {{each data v}}
        <option value='{{v.id}}'>{{v.name}}</option>
        {{/each}}
    </script>

    <script src="./libs/http.js"></script>
    <script>
        // 入口函数
        $(function () {
            //1.获取artile_list页面传递过来的文章id
            var id = window.location.href.split('=')[1];
            console.log(id);

            /*2.加载文章类别 
             */
            $.ajax({
                type: 'get',
                url: BigNew.category_list,
                success: function (backData) {
                    if (backData.code == 200) {
                        //模板引擎渲染数据
                        $('select.category').html(template('cat_list', backData));
                    }
                }
            });

            /*3.加载文章详细信息 
             */
            $.ajax({
                type: 'get',
                url: BigNew.article_search,
                data: {
                    id: id
                },
                success: function (backData) {
                    console.log(backData);
                    if (backData.code == 200) {
                        //获取成功,把对应的数据显示在对应的标签上.
                        $('input.title').val(backData.data.title); //文章标题
                        $('.article_cover').attr('src', backData.data.cover); //文章封面
                        $('select.category').val(backData.data.categoryId); //文章类别
                        $('#testico').val(backData.data.date); //时间.
                        /*细节：由于tinymce比较复杂，加载需要时间。
                        一旦网速过快，就有可能导致数据已经返回，但是插件还没加载完的情况
                        解决方案：使用定时器延迟加载（可以添加一个loading动画迷惑用户）
                        */
                        setTimeout(function () {
                            tinymce.activeEditor.setContent(backData.data.content)
                        }, 200);

                    }
                }
            });

            /*4.文件预览 
            */
            //1.给file表单元素注册onchange事件
            $('#inputCover').change(function () {
                //1.2 获取用户选择的图片
                var file = this.files[0];
                //1.3 将文件转为src路径
                var url = URL.createObjectURL(file);
                //1.4 将url路径赋值给img标签的src
                $('.article_cover').attr('src', url);
            });

            /*5.编辑文章 
            1.细节：编辑文章接口文档参数很多，FromData只能自动获取表单中部分参数
                解决方案：使用 FromData的append()方法手动添加参数
            2.由于编辑按钮和草稿按钮业务逻辑相同，可以封装一个函数
                解决方案：只是state参数不同，，将state作为参数传递
            */
           /* 发布 */
            $('.btn-edit').click(function (e) {
                //3.1 禁用表单默认提交事件
                e.preventDefault();
                //3.2 ajax发送请求
                editArticlie('已发布');
            });

            /* 存为草稿 */
            $('.btn-draft').click(function (e) {
                //3.1 禁用表单默认提交事件
                e.preventDefault();
                //3.2 ajax发送请求
                editArticlie('草稿');
            });

            //编辑文章ajax请求封装
            function editArticlie(state) {
                //(3)创建fd对象
                var fd = new FormData($('#form')[0]);
                //追加一个修改后的内容
                fd.append('content', tinyMCE.activeEditor.getContent());
                //追加文章id到fd中去.
                fd.append('id', id);
                //追加文章状态
                fd.append('state', state);
                //3.发送ajax请求,完成修改
                $.ajax({
                    url: BigNew.article_edit,
                    type: 'post',
                    data: fd,
                    contentType: false,
                    processData: false,
                    success: function (backData) {
                        if (backData.code == 200) {
                            alert('修改成功!');
                            //回退上一页
                            window.history.back();
                        } else {
                            alert(backData.msg);
                        }
                    }
                });
            }
        });
    </script>
</body>

</html>